A storage system typically comprises one or more storage devices into which information may be entered, and from which information may be obtained, as desired. The storage system includes a storage operating system that functionally organizes the system by, inter alia, invoking storage operations in support of a storage service implemented by the system. The storage system may be implemented in accordance with a variety of storage architectures including, but not limited to, a network-attached storage environment, a storage area network and a storage device assembly directly attached to a client or host computer. The storage devices typically include storage device drives organized as a storage device array. In one embodiment, the storage device comprises hard disk drives, wherein the term “disk” commonly describes a self-contained rotating magnetic media storage device. The term storage device in this context is synonymous with hard disk drive (HDD) or direct access storage device (DASD). However, the storage device may comprise any type of device capable of storing data.
The storage operating system of the storage system may implement a high-level module, such as a file system, to logically organize the information stored on volumes as a hierarchical structure of storage objects, such as files and logical unit numbers (LUNs). A known type of file system is a write-anywhere file system that does not overwrite data on storage devices. An example of a write-anywhere file system that is configured to operate on a storage system is the Write Anywhere File Layout (WAFL®) file system available from NetApp, Inc. Sunnyvale, Calif.
The storage system may be further configured to allow many servers to access storage objects stored on the storage system. In this model, the server may execute an application, such as a database application, that “connects” to the storage system over a computer network, such as a point-to-point link, shared local area network (LAN), wide area network (WAN), or virtual private network (VPN) implemented over a public network such as the Internet. Each server may request the data services of the storage system by issuing access requests (read/write requests) as file-based and block-based protocol messages (in the form of packets) to the system over the network.
A plurality of storage systems may be interconnected to provide a storage system architecture configured to service many servers. In some embodiments, the storage system architecture provides one or more aggregates, each aggregate comprising a set of one or more storage devices (e.g., disks). Each aggregate may store one or more storage objects, such as one or more volumes. The aggregates may be distributed across a plurality of storage systems interconnected as a cluster. The storage objects (e.g., volumes) may be configured to store content of storage objects, such as files and logical unit numbers, served by the cluster in response to multi-protocol data access requests issued by servers.
Although this storage system architecture is capable of servicing many servers or hosts, adding more hardware may not suffice in addressing the need for more storage capacity. Often times data center space available for storage systems has not kept pace with increased need. The rapid increase in storage device capacity has helped; but even with this growth, real estate remains a limiting factor. Storage virtualization has emerged as an important strategy in addressing this problem. Storage virtualization abstracts the logical storage of data from its physical location. The available space on physical storage devices in a system is assigned to virtual pools to which hosts (or servers) can be attached. Virtualization can result in much more efficient and flexible usage of storage capacity; it can, for example, enable such capabilities as adding capacity on the fly and changing the allocation of storage capacity to computing device on an as-needed basis.